



#ifndef SNL_TOKENABOUT_H
#define SNL_TOKENABOUT__H

#include <string>
#include <set>

///singleton class
class KeyWord
{
public:

	KeyWord();
	
	static KeyWord *instance;
	
	bool isKey(const string str);

	bool insertKey(const string str);
	
	//initiate the KeyWord
	void init(); 


	///data area

private:

	///the map to search keywords
	set<string> m_KeyMap;
};

//initialize
KeyWord::instance=0;


struct Type
{
	static const int KEYWORD =1;
	static const int INTEGER =2;
	static const int CHARACTOR =3
	static const int IDENTITY =4;
	static const int OPERATOR =5;
	static const int CUT =6;
	static const int ERROR =7;
};

///class token

class Token
{
	///data area
private:
	int m_line;
	//TYPE 
	int m_type;
	std::string m_sem;


	///function area
public:
	Token();
	void m_print();

};


#endif
